Computers within a network often share data with other computers in the network. In some distributed computing systems, the computers share synchronized variables such as counters where each computer stores a local copy of the current value of the variable. The variable is synchronized among the computers in that the current value of the variable reflects contributions to the variable from all computers in the network. Systems involving thousands of variables, for example, across an enterprise network quickly lose synchronization.
Some prior art systems share data by replication. In these systems, data from a master computer is transmitted to one or more slave computers for storage. While the slave computers in these prior art systems maintain a copy of the data from the master computer, they are unable to modify the data or communicate the modifications to the master computer.
In other prior art systems, each computer in the network updates a local copy of the variable. Various counting techniques can be performed on the computers to obtain a total value of a variable. However, in large-scale networks with rapidly-changing variable values, these counting techniques can be time-consuming and inaccurate.
For these reasons, an improved system and method of synchronizing variables in a distributed computing system is desired to address one or more of these and other disadvantages.